﻿////////////////////////////////////////////////////////////////////////////
//                                                                        //
//                       Copyright (c) 2003-2008                          //
//                              Wang Hua                                  //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

// AsRightFunction.h
//
//////////////////////////////////////////////////////////////////////

#if !defined(_ASRIGHTFUNCTION_H_)
#define _ASRIGHTFUNCTION_H_


#include "AsCommon.h"
#include "AsVector.h"





//
//右函数类，用于其它右函数计算类的基类
//
class CFuncRight
{
public:
    CFuncRight() {};
    virtual ~CFuncRight() {};

    /// @Input
    /// @Param	t		自变量的值
    /// @Param	xN		初始函数值和结果函数值的个数
    /// @Param	x		初始函数值
    /// @Output
    /// @Param	result	结果函数值
    virtual	void operator() (double t, int xN, const double* x, double* result) const = 0;

};


//
//输入1个变量,输出1个变量的函数类
//
class CFunc11
{
public:
    CFunc11() {};
    virtual ~CFunc11() {};

    /// @Input
    /// @Param	x		自变量的值
    /// @Output
    /// @Param	result	计算得到的函数值
    /// @Return	计算是否正常，上层程序检测到这个异常后应该退出
    virtual	bool operator() (double x, double& result) const = 0;
};



#endif // !defined(_ASRIGHTFUNCTION_H_)
